From 3fffd2f801c4d99670326803e67a4c318856f76c Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Sun, 5 Dec 2010 23:29:50 +0000 Subject: [PATCH] gnus-util.el (gnus-macroexpand-all): Use eval-and-compile. --- lisp/gnus/ChangeLog | 4 ++++ lisp/gnus/gnus-util.el | 33 +++++++++++++++++---------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 9fa07346d54..9484c243651 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2010-12-05 Katsumi Yamaoka + + * gnus-util.el (gnus-macroexpand-all): Use eval-and-compile. + 2010-12-05 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-respool-article): The completion function diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 45fd26c86c0..fa4bf076a30 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -2037,25 +2037,26 @@ Same as `string-match' except this function does not change the match data." (save-match-data (string-match regexp string start)))) -(if (fboundp 'macroexpand-all) - (defalias 'gnus-macroexpand-all 'macroexpand-all) - (defun gnus-macroexpand-all (form &optional environment) - "Return result of expanding macros at all levels in FORM. +(eval-and-compile + (if (fboundp 'macroexpand-all) + (defalias 'gnus-macroexpand-all 'macroexpand-all) + (defun gnus-macroexpand-all (form &optional environment) + "Return result of expanding macros at all levels in FORM. If no macros are expanded, FORM is returned unchanged. The second optional arg ENVIRONMENT specifies an environment of macro definitions to shadow the loaded ones for use in file byte-compilation." - (if (consp form) - (let ((idx 1) - (len (length (setq form (copy-sequence form)))) - expanded) - (while (< idx len) - (setcar (nthcdr idx form) (gnus-macroexpand-all (nth idx form) - environment)) - (setq idx (1+ idx))) - (if (eq (setq expanded (macroexpand form environment)) form) - form - (gnus-macroexpand-all expanded environment))) - form))) + (if (consp form) + (let ((idx 1) + (len (length (setq form (copy-sequence form)))) + expanded) + (while (< idx len) + (setcar (nthcdr idx form) (gnus-macroexpand-all (nth idx form) + environment)) + (setq idx (1+ idx))) + (if (eq (setq expanded (macroexpand form environment)) form) + form + (gnus-macroexpand-all expanded environment))) + form)))) (provide 'gnus-util) -- 2.30.2